home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / C / Applications / Moscow ML 1.31 / source code / mosml / src / runtime / instruct.h < prev    next >
Encoding:
C/C++ Source or Header  |  1996-07-03  |  1.9 KB  |  157 lines  |  [TEXT/R*ch]

  1. /* The instruction set. */
  2.  
  3. /* --- The instruction set has been extended for Moscow SML! --- */
  4.  
  5. /* One instruction per line only. */
  6.  
  7. enum instructions {
  8.   CONSTBYTE,
  9.   CONSTSHORT,
  10.   GETGLOBAL,
  11.   SETGLOBAL,
  12.   CUR,
  13.   SWITCH,
  14.   BRANCH,
  15.   BRANCHIF,
  16.   BRANCHIFNOT,
  17.   POPBRANCHIFNOT,
  18.   BRANCHIFNEQTAG,
  19.   BRANCHIFEQ,
  20.   BRANCHIFNEQ,
  21.   BRANCHIFLT,
  22.   BRANCHIFGT,
  23.   BRANCHIFLE,
  24.   BRANCHIFGE,
  25.   BRANCHINTERVAL,
  26.   C_CALL1,
  27.   C_CALL2,
  28.   C_CALL3,
  29.   C_CALL4,
  30.   C_CALL5,
  31.   C_CALLN,
  32.   MAKEBLOCK,
  33.   MAKEBLOCK1,
  34.   MAKEBLOCK2,
  35.   MAKEBLOCK3,
  36.   MAKEBLOCK4,
  37.   TAGOF,
  38.   ACCESS,
  39.   ACC0,
  40.   ACC1,
  41.   ACC2,
  42.   ACC3,
  43.   ACC4,
  44.   ACC5,
  45.   ATOM,
  46.   ATOM0,
  47.   ATOM1,
  48.   ATOM2,
  49.   ATOM3,
  50.   ATOM4,
  51.   ATOM5,
  52.   ATOM6,
  53.   ATOM7,
  54.   ATOM8,
  55.   ATOM9,
  56.   GETFIELD,
  57.   GETFIELD0,
  58.   GETFIELD1,
  59.   GETFIELD2,
  60.   GETFIELD3,
  61.   SETFIELD,
  62.   SETFIELD0,
  63.   SETFIELD1,
  64.   SETFIELD2,
  65.   SETFIELD3,
  66.   STOP,
  67.   CHECK_SIGNALS,
  68.   APPLY,
  69.   RETURN,
  70.   APPTERM,
  71.   GRAB,
  72.   LET,
  73.   LETREC1,
  74.   DUMMY,
  75.   UPDATE,
  76.   ENDLET,
  77.   ENDLET1,
  78.   PUSHTRAP,
  79.   RAISE,
  80.   POPTRAP,
  81.   PUSH,
  82.   POP,
  83.   PUSHMARK,
  84.   PUSH_GETGLOBAL_APPLY,
  85.   PUSH_GETGLOBAL_APPTERM,
  86.   BOOLNOT,
  87.   NEGINT,
  88.   SUCCINT,
  89.   PREDINT,
  90.   ADDINT,
  91.   SUBINT,
  92.   MULINT,
  93.   DIVINT,
  94.   MODINT,
  95.   ANDINT,
  96.   ORINT,
  97.   XORINT,
  98.   SHIFTLEFTINT,
  99.   SHIFTRIGHTINTSIGNED,
  100.   SHIFTRIGHTINTUNSIGNED,
  101.   EQ,
  102.   NEQ,
  103.   LTINT,
  104.   GTINT,
  105.   LEINT,
  106.   GEINT,
  107.   INCR,
  108.   DECR,
  109.   FLOATOP,
  110.   INTOFFLOAT,
  111.   EQFLOAT,
  112.   NEQFLOAT,
  113.   LTFLOAT,
  114.   GTFLOAT,
  115.   LEFLOAT,
  116.   GEFLOAT,
  117.   STRINGLENGTH,
  118.   GETSTRINGCHAR,
  119.   SETSTRINGCHAR,
  120.   EQSTRING,
  121.   NEQSTRING,
  122.   LTSTRING,
  123.   GTSTRING,
  124.   LESTRING,
  125.   GESTRING,
  126.   MAKEVECTOR,
  127.   VECTLENGTH,
  128.   GETVECTITEM,
  129.   SETVECTITEM,
  130.   SMLNEGINT,
  131.   SMLSUCCINT,
  132.   SMLPREDINT,
  133.   SMLADDINT,
  134.   SMLSUBINT,
  135.   SMLMULINT,
  136.   SMLDIVINT,
  137.   SMLMODINT,
  138.   MAKEREFVECTOR,
  139.   SMLQUOTINT,
  140.   SMLREMINT,
  141.   BREAK
  142. };
  143.  
  144. enum float_instructions {
  145.   FLOATOFINT,
  146.   NEGFLOAT,
  147.   ADDFLOAT,
  148.   SUBFLOAT,
  149.   MULFLOAT,
  150.   DIVFLOAT,
  151.   SMLNEGFLOAT,
  152.   SMLADDFLOAT,
  153.   SMLSUBFLOAT,
  154.   SMLMULFLOAT,
  155.   SMLDIVFLOAT
  156. };
  157.